home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / CDTV / cdtvtools-11 / debug / README < prev   
Encoding:
Text File  |  1991-06-21  |  13.1 KB  |  407 lines

  1.                             Preliminary
  2.                         Software Toolkit II
  3.  
  4. Here are some quick descriptions and credits for the tools on this disk.
  5.  
  6. Most CLI tools provide usage if called with "?".  Some of the more complex
  7. tools (Wack and Wedge) are fully documented in separate .doc files.
  8.  
  9. If you are planning on releasing software to the public, be sure to test
  10. with the various watchdog tools first!    Memmung and io_torture work on any
  11. system.  If you have an MMU and are running V1.3, use _Enforcer_.  If you
  12. are running 2.0, chose between _Enforcer_, or CPU trap.  If running an
  13. A3000, use complainer.
  14.  
  15.  
  16.  
  17. autodoc
  18.  
  19.    Extracts autodocs from your source code, with docs on how to code your
  20.    comments to make this possible.  See autodoc.doc for usage.
  21.  
  22.  
  23. bumprev
  24.  
  25.    Bumps the revision in an xxx_rev.h or .i file.
  26.    Usage: bumprev version revfilename    (example bumprev 36 my_rev)
  27.  
  28.  
  29. charset
  30.  
  31.    Printf's a table of the Amiga character set (ECMA-94 Latin 1 International
  32.    8-bit character set) with hex and binary upper/lower nibble values.
  33.  
  34.  
  35. complainer and complainer.par (by Bryce Nesbitt)
  36.  
  37.    A3000 MMU watchdog.    Use in conjunction with MemMung to catch use of
  38.    freed or uninitialized memory, and writes to ROM or non-existant memory.
  39.    Requires serial terminal.
  40.    Usage: complainer[.par] on|off
  41.  
  42.  
  43. cputrap and cputrap.par (by Valentin Pepelea)
  44.  
  45.    A2500 MMU watchdog traps for use with the 2.0 CPU command.
  46.    Catches illegal memory accesses, low memory reads/writes, writes
  47.    to ROM, etc.  Use in conjunction with MemMung to also catch use of
  48.    freed memory of pointers. Requires 2.0, MMU, CPU command, and serial
  49.    terminal (cputrap) or parallel printer (cputrap.par).
  50.    Usage: run cputrap[.par]
  51.       CPU trap
  52.  
  53.  
  54. config (by Carolyn Scheppner)
  55.  
  56.    Displays your system configuration ( versions, chips, boards, etc.) With
  57.    "debug" option it lists all of the autoconfig info for each board.
  58.  
  59.    Usage: config [debug]
  60.  
  61.  
  62. configdev (by Bryce Nesbitt)
  63.  
  64.    Lists every last detail about every AutoConfig (tm) device in the
  65.    system. Knows about Zorro III cards.
  66.  
  67.    Usage: configdev [brief]
  68.  
  69.  
  70. crash3, crash4, crash5, crash8, crasha (by C. Scheppner)
  71.  
  72.    Little programs to crash your machine (just what you need :-)
  73.    They are useful when testing debugging tools like SRT and TNT.
  74.    They are non-destructive - they just crash the shell process you call
  75.    them from.  They store recognizable values in most registers before
  76.    they crash (like d0=0 thru d7=7, a0=10 thru a6=16 EXCEPT a2=program
  77.    counter and a3=stack pointer) so you can tell if your debugging tool
  78.    is picking up the right info.
  79.  
  80.  
  81. devlist (by Carolyn Scheppner)
  82.  
  83.    Lists all currently loaded/available devices in the system.
  84.  
  85.  
  86. devmon (by Carolyn Scheppner)
  87.  
  88.    Exec device monitor.  Wedges into Open/Close/Expunge/BeginIO vectors
  89.    of any exec device unit and reports on all calls.  With "full" option,
  90.    the exec functions DoIO, SendIO, WaitIO, AbortIO, and ReplyMsg are
  91.    also wedged.  Default output option buffers 40K of debug output
  92.    then outputs to your choice of screen or file when you exit.
  93.    (Local buffer can be restarted at any time).  With "remote" option,
  94.    output is kprintf'd.  Warning - I don't suggest using remote option
  95.    for heavy-use or time-critical devices like timer.device (too slow).
  96.  
  97.  
  98. disked
  99.  
  100.    Sector editor documented in Bantam AmigaDOS manual.    See the toolkit
  101.    documentation for an example.
  102.  
  103.  
  104. doslist (by Andy Finkel)
  105.  
  106.    Lists all of your dos device and volume environment information.
  107.    This version has a larger buffer for folks with lots of devices.
  108.  
  109.  
  110. drip
  111.  
  112.    A classic memory loss tool.
  113.    Usage: drip [threshold]
  114.    Call it again to check for memory loss.
  115.  
  116.  
  117. eatcycles (by John Szucs)
  118.  
  119.    Requires 2.0.  Lets you bog down the processor to simulate heavy
  120.    multitasking loads.
  121.  
  122.  
  123. eatmem (by John Szucs)
  124.  
  125.    Requires 2.0.  Great gadtools-interface memory control panel.
  126.    Lets you dynamically adjust the amount of free memory available for
  127.    testing under low memory situations, or to simulate a machine with
  128.    less memory.
  129.  
  130.  
  131. enforcer and enforcer.par (by Bryce Nesbitt)
  132.  
  133.    MMU watchdog.  Works under 2.0 and 1.3.  Catches illegal memory
  134.    accesses, low memory reads/writes, writes to ROM, areas of no memory,
  135.    etc.
  136.  
  137.    Use with MemMung or MungWall to also catch use of freed memory or
  138.    pointer. Requires MMU and serial terminal.
  139.  
  140.    Usage: enforcer on|off|fprotect
  141.  
  142.  
  143. flush (by Carolyn Scheppner)
  144.  
  145.    Does three big memory allocations to force currently unopened
  146.    ram-resident fonts, libraries, and devices out of the system. (3 allocs
  147.    so that libs/devs that have other libs/devs open... can be flushed,
  148.    followed by the libs/devs THEY had open, etc...) Used when testing for
  149.    memory loss.  (flush, avail, run your program, exit program, flush,
  150.    avail).
  151.  
  152.  
  153. frags
  154.  
  155.    Shows summary of memory fragmentation.
  156.  
  157.  
  158. intlist (from the original by Carl Sassenrath)
  159.  
  160.    System interrupt lister.
  161.  
  162.  
  163. io_torture (by Bryce Nesbitt)
  164.  
  165.    Device IO watchdog - watches for reuse of IORequests before they have
  166.    completed.  Requires serial terminal.
  167.  
  168.  
  169. lawbreaker (by Bryce Nesbitt)
  170.  
  171.    A little program to test your MMU debugging tool and remote setup.  Does
  172.    an read of location $14, and a write to location $C0EDBAE.
  173.  
  174.  
  175. liblist (by Carolyn Scheppner)
  176.  
  177.    Lists all currently loaded/available libraries in the system.
  178.  
  179.  
  180. lvo (by Carolyn Scheppner)
  181.  
  182.    If you have a directory or disk assigned the name FD:, containing
  183.    the FD files, lvo can give you the LVO offset of a function (hex
  184.    and decimal) and the usage line for the function (handy for quick
  185.    checks on function arguments and registers).  Wedgeline option
  186.    generates command lines for Wedge.
  187.    Usage: lvo library [functionname] [wedgeline]
  188.    Example: lvo exec OpenLibrary
  189.  
  190.  
  191. memlist (by Carolyn Scheppner)
  192.  
  193.    Displays all of the system's memory areas and free memory lists.  Can
  194.    be redirected to a disk file.
  195.  
  196.  
  197. memmon (by Carolyn Scheppner)
  198.  
  199.    Simple memory monitor for checking relative memory usage while
  200.    running your program.  Redirect to a disk file for a log.
  201.  
  202.  
  203. memmung (by Bryce Nesbitt)
  204.  
  205.    Freed memory invalidation tool.  Sets address $0, and all Free'd memory
  206.    to a nasty value, designed to cause you big problems if you are using
  207.    null pointers or accessing freed memory.  If used in conjunction with
  208.    an MMU Watchdog tool (enforcer, cputrap, or complainer as appropriate)
  209.    you get informative messages on such accesses (rather than crashes).
  210.    Memory allocations which don't have the MEMF_CLEAR flag set, will be
  211.    munged as well.
  212.    Use by itself if you don't have an MMU but be prepared to crash.
  213.  
  214.    Usage: run memmung
  215.  
  216.  
  217. mks_lens (by Mike Sinz)
  218.  
  219.    A magnifying-glass for for screen text and graphics.  Lets you
  220.    examine every pixel easily.    Useful for debugging graphic
  221.    placement and trashing.
  222.  
  223.  
  224. modlist (by Carolyn Scheppner)
  225.  
  226.    Lists all of the resident modules in the system.
  227.  
  228. mungwall (by Ewout Walraven)
  229.  
  230.    Mungwall puts a magic cookie around all memory allocations (or all by
  231.    a particular task) and complains serially when the memory is freed
  232.    if the cookie has been trashed. Munges all free memory on startup,
  233.    when it is allocated and when it is freed.
  234.    See mungwall.doc for details.
  235.  
  236. owner (by Mike Sinz)
  237.  
  238.    Searches exec lists trying to find owner of a piece of memory.
  239.  
  240.    Usage: owner 0xhhhhhh [0xhhhhhh, etc.]
  241.  
  242.  
  243. peek, poke (by Carolyn Scheppner)
  244.  
  245.    Let you peek or poke memory, and compare memory contents against a
  246.    masked or unmasked value.
  247.     
  248.    Usage: peek B|W|L [0x]address [[0x]compvalue] [[0xmask]
  249.  
  250. printertest (by Bob Burns)
  251.  
  252.    Printer driver test for printer driver writers.
  253.  
  254.  
  255. readpixel (by Carolyn Scheppner)
  256.  
  257.    Tool that lets you click on pixels to find out their pen number and
  258.    x/y position.  Useful for measuring things onscreen or checking their
  259.    positions.  Coordinates are relative to top left corner of screen.
  260.  
  261.  
  262. romwack
  263.  
  264.    Freezes your system and enters the rom-based system serial debugger,
  265.    allowing you to examine your machine's memory remotely.  Same effect
  266.    as calling Debug() from within a program.
  267.    See RomWack docs in the Addison-Wesley Rom Kernel Manual.
  268.  
  269.  
  270. settaskname (by Carolyn Scheppner)
  271.  
  272.    Lets you change the name of a CLI to any same or shorter length name.
  273.    Useful in conjuction with the MemWall [task Name] option.
  274.  
  275.    Usage: settaskname newname
  276.  
  277.  
  278. showgfxbase (by Carolyn Scheppner)
  279.  
  280.    Shows some popular GfxBase variables.
  281.  
  282.  
  283. showlocks ( Copyright Chuck McManis )
  284.  
  285.    Shows the outstanding locks on a volume.
  286.    Usage: showlocks volumename
  287.  
  288.  
  289. snoop (by Carl Sassenrath, modified by R. Jesup and C. Scheppner)
  290.  
  291.    Snoop reports serially on all memory allocations and deallocations.
  292.    You should capture snoop's output in a terminal program's ascii buffer
  293.    abd then run snoopstrip on it to leave just unmatched allocs/frees.
  294.    This version outputs full 32-bit addresses.    Modified to snoop both
  295.    AllocMem/FreeMem, plus AllocVec/FreeVec if 'vec' flag is used.
  296.    NOTE! In order for snoopstrip to be able to match up AllocVec's and
  297.    FreeVec's, I have to lie about the sizes and output the ACTUAL size
  298.    rather than the requested size for these functions (requested size is
  299.    not available on a FreeVec call).  Requires serial terminal.
  300.  
  301.    Usage: snoop [vec]
  302.  
  303.  
  304. snoopstrip (by Neil Katin, modified by C. Scheppner)
  305.  
  306.    Snoopstrip is used to strip all matching allocations and frees from
  307.    a captured snoop output file (or from the output of MemWall's snoop
  308.    option).  All unmatched allocs and frees will cause snoopstrip to
  309.    output a "NoAlloc:" or an "UnFreed:" line, specifying the allocation
  310.    and the owning task.  This new version requires the full 32-bit output
  311.    such as produced by the new Snoop and MemWall programs above.
  312.    Snoopstrip no longer throws away lines it does not understand (unless
  313.    used with the "discard" option).  Instead, it will just prepend the
  314.    lines with a "?".  If it thinks it is being fed old-style 24-bit snoop
  315.    output, it will also output a warning.
  316.  
  317.    Usage:  snoopstrip <snoopfile >outfile [discard]
  318.  
  319.  
  320. sparemem (by Carolyn Scheppner)
  321.  
  322.    Lets you reduce free memory TO a certain amount or BY a certain amount.
  323.    (I wrote it before I saw how nice eatmem is).  Still could be useful
  324.    when (for instance) trying to test a bootable disk under lowered
  325.    memory conditions.
  326.    Usage: sparemem c=[-]bytes f=[-]bytes
  327.  
  328.  
  329. srt (by Carolyn Scheppner)
  330.  
  331.    Wedges into AutoRequest to trap Software Error requesters and replace
  332.    with a debug requester containing PC, registers, task name, etc.
  333.    Unfortunately, almost all of 2.0 uses EasyRequest() now, so SRT
  334.    is useless for intercepting 2.0 requesters or software errors.
  335.    However, one handy feature under 1.3 is that it can be installed
  336.    after you crash (then click Retry in requester).
  337.  
  338.    Usage: srt textfile [default is s:srt.text]
  339.  
  340.    See new "tnt" below for trapping 1.3/2.0 software errors.
  341.  
  342.  
  343. tasklist (by Carolyn Scheppner)
  344.  
  345.    Lists all tasks in the system and their addresses.
  346.  
  347.  
  348. tnt (by Carolyn Scheppner)
  349.  
  350.   (== trap no tasks  or something like that with the same letters...)
  351.  
  352.    Installs (or removes) a special task trap handler for all
  353.    current and future system tasks and processes.  Instead of
  354.    Software Errors, you'll get an SRT-style debugging requester
  355.    showing the name, registers, program counter, and stack pointer
  356.    of the crashed task, process, or command.  Lets you suspend the
  357.    task if you wish.  Works with (or without) Enforcer and CPU.
  358.    However, turn it off before using a trap-based debugger.
  359.    Usage: tnt [off]
  360.  
  361.  
  362. tstat (by Carolyn Scheppner)
  363.  
  364.    I use this a lot.  It displays a whole bunch of information about
  365.    any task, including what its registers, stack pointer, and PC
  366.    were last time it got switched out.    You can give it a CLI number
  367.    or an exec task name.  You can also give it a repeat time in ticks
  368.    (50th's of a second) and it will monitor the task continuously.
  369.    It shows all of the signal states, and Forbid/Disable nest counts,
  370.    stack usage, and highest stack usage.  Very handy for spotting
  371.    unfreed signals, extra/missing Forbids/Disables, stack problems,
  372.    memory drips, etc.  And you can even use it as a poor-man's
  373.    logic state analyzer - you can crudely follow the execution
  374.    of any task or process by watching it's PC.
  375.  
  376.  
  377. wack, wack1.0 (original Wack1.0 by Carl Sassenrath, revision by Eric Cotton)
  378.  
  379.    Simple usage: wack [programname]
  380.    Symbolic debuggers.    See wack.doc.
  381.    Or try ?<RET> in Wack.
  382.  
  383.  
  384. watchmem (by Andy Finkel)
  385.  
  386.    Processor based tool for spotting trashing of low memory on systems
  387.    without an MMU.
  388.    Usage: RUN watchemem [ file | window ] opt n [interval] (n==nocorrect)
  389.  
  390.  
  391. wedge (by Carolyn Scheppner)
  392.  
  393.    Lets you wedge into just about any system function.    Call multiple
  394.    times to install several wedges.  Wedge LIST shows currently installed
  395.    wedges.  Wedge KILLALL kills all installed wedges.  Wedge help gives
  396.    help.  Can snoop on just particular tasks/commands, or on all but
  397.    particular tasks/commands.  Use "lvo" with wedgeline option to create
  398.    command lines for wedge.  (redirect lvo to a file, then execute the file).
  399.    Accompanying s/xxx.w files are sample script files (generated by lvo) for
  400.    installing some wedges.
  401.    Type wedge HELP for help.  See wedge.doc for full docs.
  402.  
  403.  
  404. winlist (by Carolyn Scheppner)
  405.  
  406.    Lists all screens and windows in the system.
  407.